package com.example.store.mapper;

import com.example.store.entity.Cart;
import com.example.store.vo.CartVO;

import java.util.Date;
import java.util.List;

public interface CartMapper {
    /**
     * 插入购物车
     * @param cart 购物车数据
     * @return 受影响的行数
     */
    Integer insert(Cart cart);

    /**
     * 更新购物车某件商品的数量
     * @param cid 购物车商品id
     * @param num 更新的数量
     * @param modifiedUser 修改者
     * @param modifiedTime 修改时间
     * @return 受影响的行数
     */
    Integer updateNumByCid(Integer cid,
                           Integer num,
                           String modifiedUser,
                           Date modifiedTime);

    /**
     *  根据用户id和商品id来查询购物车中的数据
     * @param uid 用户id
     * @param pid 商品id
     * @return 购物车中的商品数据，没有就返回null
     */
    Cart findByUidAndPid(Integer uid, Integer pid);

    /**
     * 根据用户id查询CartVO
     * @param uid 用户id
     * @return 返回值对象（VO）
     */
    List<CartVO> findVOByUid(Integer uid);

    /**
     * 根据购物车商品cid来查询商品数据
     * @param cid 购物车商品cid
     * @return 返回值为商品数据
     */
    Cart findByCid(Integer cid);

    /**
     * 根据购物车商品cid查询商品数据
     * @param cids 购物车商品cid
     * @return 商品数据集合
     */
    List<CartVO> findVOByCid(Integer[] cids);
}
